function limiter(tasks, max = 3) {
  if (tasks.length === 0) {
    // 任务处理完成
  }
  if (!tasks.length) return;
  //   这里会返回新数组 并改变原数组
  let taskArr = tasks.splice(0, max);
  for (let i = 0; i < taskArr.length; i++) {
    taskArr[i] = Promise.resolve(taskArr[i]);
  }
  Promise.all(taskArr).then((data) => {
    //   这里存一下数据 然后继续递归
    limiter(tasks, max);
  });
}
